package com.ruoyi.system.service;

import java.util.List;
import java.util.Map;

/**
 * 编码生成Service接口
 * 
 * @author ruoyi
 * @date 2025-08-08
 */
public interface ISysCodingService 
{
    /**
     * 根据表名和字段名生成编码
     * 
     * @param tableName 表名
     * @param fieldName 字段名
     * @param params 额外参数
     * @return 生成的编码
     */
    String generateCode(String tableName, String fieldName, Map<String, Object> params);

    /**
     * 编码预览
     * 
     * @param params 预览参数
     * @return 预览编码
     */
    String previewCode(Map<String, Object> params);

    /**
     * 批量生成编码
     * 
     * @param params 批量生成参数
     * @return 生成的编码列表
     */
    List<String> batchGenerateCode(Map<String, Object> params);

    /**
     * 获取编码规则统计信息
     * 
     * @return 统计信息
     */
    Map<String, Object> getCodingStats();

    /**
     * 验证编码规则配置
     * 
     * @param params 验证参数
     * @return 验证结果
     */
    boolean validateCodingRule(Map<String, Object> params);

    /**
     * 复制编码规则
     * 
     * @param ruleId 规则ID
     * @param newRuleName 新规则名称
     * @return 复制结果
     */
    boolean copyCodingRule(Long ruleId, String newRuleName);

    /**
     * 启用/禁用编码规则
     * 
     * @param ruleId 规则ID
     * @param status 状态
     * @return 操作结果
     */
    boolean toggleCodingStatus(Long ruleId, String status);

    /**
     * 导入编码规则
     * 
     * @param params 导入参数
     * @return 导入结果
     */
    boolean importCoding(Map<String, Object> params);
}